No estoy muy familiarizado con JavaScript clásico, entonces, ¿cómo se verían estas líneas en jQuery?
const siemas = document.querySelectorAll('.slider'); for(const siema of siemas) { new Siema({ selector: siema }); }Este ...
const siemas = document.querySelectorAll('.slider');.. será justo (si tengo razón):
var siemas = $('.slider');Y esto ...
for(const siema of siemas)... se convertirá en algo como:
$.each ???Si tiene varias presentaciones de diapositivas
for..of vs bucle for simple
const sliders = document.querySelectorAll('.slider'); for (let i=0;i<sliders.length;i++) { new Siema({ selector: sliders[i] }); }para.. de vs para cada uno
for..of no es compatible con IE, pero puede usar un forEach en su lugar. El forEach debe envolverse usando spread ya que IE tampoco es compatible con forEach en una colección HTML
[...document.querySelectorAll('.slider')].forEach(function() { new Siema({ selector: this }); })para..de vs jQuery cada uno
$('.slider').each(function() { new Siema({ selector: this }) })tal vez (dependiendo de su html) simplemente puede hacer
const slideShow = new Siema({ selector: '.slider' })En jquery.
var siemas = $('.slider'); siemas.each(function(){ // this represent current element new Siema({ selector: this }); });for..of es un ciclo ampliamente disponible, que es compatible con todos los navegadores, excepto el ahora obsoleto IE. Entonces, en jQuery harías
$('slider').each(function() { //this is the 'current' slider element //$(this) is the jQuery object of the current slider });Pero no es muy recomendable aumentar la dependencia de jQuery, una tecnología que JS ya no necesita solo para soportarla. En su lugar, podría simplemente usar sus bucles for..of mientras escribe su código y usar BabelJS para convertir su código a ES5 para que IE pueda manejarlo. Ejemplo :
Convierte
var arr = [1, 2, 3]; for (let item of arr) { //do whatever with item }dentro
"use strict"; var arr = [1, 2, 3]; for (var _i = 0, _arr = arr; _i < _arr.length; _i++) { //do whatever with item var item = _arr[_i]; }Entonces, puede implementar myscript.js y usando Babel puede generar su versión ES5 , llamémoslo myscript_ie.js. Entonces, cuando su página está cargada, puede verificar si el navegador es IE. De lo contrario, puede cargar su script normal. De lo contrario, puede cargar su versión de IE.
El motivo de esta recomendación específica es que for..of es solo una de las funciones que IE no admite, esta respuesta tiene como objetivo resolver todas estas incompatibilidades, o al menos reducirlas en gran medida y va más allá del problema de for..of